From 0623f56d0b04d4319c1be1972cf53918f92fa843 Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 8 May 2015 14:12:20 +0200 Subject: [PATCH] Revert "x86: add the RTC io space to the blocked access list" This reverts commit 3b22924062b2648b3df83e9ebda6da52a28c1316, as it breaks Dom0 access to CMOS/RTC. --- xen/arch/x86/domain_build.c | 3 --- xen/arch/x86/traps.c | 4 ++++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 2a23746a82..03e4bfeb84 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -37,7 +37,6 @@ #include #include #include -#include #include @@ -1549,8 +1548,6 @@ int __init construct_dom0( rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3); /* PCI configuration space (NB. 0xcf8 has special treatment). */ rc |= ioports_deny_access(d, 0xcfc, 0xcff); - /* Never permit direct access to the RTC/CMOS registers. */ - rc |= ioports_deny_access(d, RTC_PORT(0), RTC_PORT(1)); /* Command-line I/O ranges. */ process_dom0_ioports_disable(d); diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 0b0c5e96de..22cdfc48ae 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -1765,6 +1765,10 @@ static int admin_io_okay( if ( (port == 0xcf8) && (bytes == 4) ) return 0; + /* We also never permit direct access to the RTC/CMOS registers. */ + if ( ((port & ~1) == RTC_PORT(0)) ) + return 0; + return ioports_access_permitted(v->domain, port, port + bytes - 1); } -- 2.30.2